package cn.idcast.demo05;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

/*
OutputStreamWriter extends  writer
OutputStreamWriter;是字符流通向字节流的桥梁;(编码；把看懂的变成看不懂的)

构造方法摘要
OutputStreamWriter(OutputStream out)
          创建使用默认字符编码的 OutputStreamWriter
OutputStreamWriter(OutputStream out, String charsetName)
          创建使用指定字符集的 OutputStreamWriter。
          String charsetName；指定的编码名称，不区分大小写，不指定使用UTF-8

    使用步骤；
    1，创建OutputStreamWriter对象，构造方法中传递字节输出流和指定的编码表名称
    2，使用OutputStreamWriter对象中的方法write，把字符转换为字节存储到缓冲区中（编码）
    3，使用OutputStreamWriter对象中的方法flush，把内存张中的字节刷新到文件中（使用字节流写字节的过程）
    4，资源释放
 */
public class Demo02OutputStreamWriter {
    public static void main(String[] args) throws IOException {

//        write_utf_8();
        write_gbk();
    }

    private static void write_gbk() throws IOException {
        //使用转换流OutputStreamWriter写gbk格式的文件
        //1，创建OutputStreamWriter对象，构造方法中传递字节输出流和指定的编码表名称
        OutputStreamWriter osw =  new OutputStreamWriter(new FileOutputStream("E:\\WkJava\\day03--code\\gbk.txt"),"gbk");
//        OutputStreamWriter osw =  new OutputStreamWriter(new FileOutputStream("E:\\EWkJava\\day03--code\\utf_8.txt"));//不指定使用UTF-8
        //2，使用OutputStreamWriter对象中的方法write，把字符转换为字节存储到缓冲区中（编码）
        osw.write("你好");
        //3，使用OutputStreamWriter对象中的方法flush，把内存张中的字节刷新到文件中（使用字节流写字节的过程）
        osw.flush();
        //   4，资源释放
        osw.close();
    }

    private static void write_utf_8() throws IOException {
        //使用转换流OutputStreamWriter写UTF_8格式的文件
        //1，创建OutputStreamWriter对象，构造方法中传递字节输出流和指定的编码表名称
//        OutputStreamWriter osw =  new OutputStreamWriter(new FileOutputStream("E:\\WkJava\\day03--code\\utf_8.txt"),"utf-8");
        OutputStreamWriter osw =  new OutputStreamWriter(new FileOutputStream("E:\\WkJava\\day03--code\\utf_8.txt"));//不指定使用UTF-8
        //2，使用OutputStreamWriter对象中的方法write，把字符转换为字节存储到缓冲区中（编码）
        osw.write("你好");
        //3，使用OutputStreamWriter对象中的方法flush，把内存张中的字节刷新到文件中（使用字节流写字节的过程）
        osw.flush();
        //   4，资源释放
        osw.close();
    }
}
